
const char *vertexShaderSource =
    "#version 330 core\n"
    "layout (location = 0) in vec3 aPos;\n"
	"layout (location = 1) in vec3 aColor;\n"
	"out vec4 fColor;\n"
	"uniform mat4 projection;\n"
	"uniform mat4 viewMatrix;\n"
	"uniform mat4 modelMatrix;\n"
    "void main()\n"
    "{\n"
    "   gl_Position = projection * viewMatrix * modelMatrix * vec4(aPos.x, aPos.y, aPos.z, 1.0);\n"
	"   fColor = vec4(aColor, 1.0f);\n"
    "}\n\0";

const char *fragmentShaderSource =
    "#version 330 core\n"
 	"in vec4 fColor;\n"
	"out vec4 FragColor;\n"
    "void main()\n"
    "{\n"
    "   gl_FragColor = fColor;\n"
    "}\n\0";

const char *textVertexShaderSource =
	"#version 330 core\n"
	"uniform mat4 projection;\n"
	"uniform mat4 viewMatrix;\n"
	"uniform mat4 modelMatrix;\n"
	"layout (location = 0) in vec3 aPos;\n"
	"layout (location = 1) in vec2 a_textcoord;\n"
	"varying vec2 v_textcoord;\n"
    "void main()\n"
    "{\n"
    "   gl_Position = projection * viewMatrix * modelMatrix * vec4(aPos.x, aPos.y, aPos.z, 1.0);\n"
	"   v_textcoord = a_textcoord;\n"
    "}\n\0";

const char *textFragShaderSource =
	"#version 330 core\n"
	"uniform sampler2D texture;\n"
	"varying vec2 v_textcoord;\n"
    "void main()\n"
    "{\n"
	"   gl_FragColor = texture2D(texture, v_textcoord);\n"
    "}\n\0";
